export {};

/* 
  创建一个函数来获取对象中属性的值
  fn( {name:'zs'}, 'name')   --->  'zs'

  1. 保证参数1，必须是对象
  2. 保证参数2，必须是参数1的一个属性
*/

/* 
描述对象的3种方式:
1. object 推荐使用
2. {} 语义上，其实是描述一个空对象，有歧义
3. Object 是 TS 封装好的一种对象类型而已
*/
const fn = <T extends object, K extends keyof T>(obj: T, prop: K) => {
  console.log(' -----> ', obj[prop]);
  return obj[prop];
};
fn({ name: 'zs' }, 'name');
fn({ name: 'zs', age: 20, gender: 1 }, 'name');
